<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr，结果返回新的数组
        function remove(arr,item){
          return arr.filter(m=>m!==item);
        }
        console.log(remove([1,2,3,4,2],2));

        function remove1(arr, item) {
            const temp = Array.from(new Set(arr)).slice();
            const targetIndex = temp.indexOf(item);
            temp.splice(targetIndex, 1);
            return temp;
        }
        console.log(remove1([1, 2, 3, 4, 2],2));

        function removeX(arr, item){
            const temp = arr.slice();
            // for
           /*  for(let i=0;i<temp.length;i++){
                if(temp[i]===item){
                    temp.splice(i,1)
                }
            } */

            // map
          /*   temp.map((m,index)=>{
                if(m===item){
                    temp.splice(index,1)
                }
            }) */

            // forEach
            temp.forEach((m,index)=>{
                if(m===item){
                    temp.splice(index,1);
                }
            })
            return temp;
        }
        console.log(removeX([1,2,3,4,2,4,2],3));

        function removeY(arr, item){
            let temp = [];
            arr.map(m=>{
                if(m!==item){
                    temp.push(m);
                }
            })
            return temp;
        }
        console.log(removeY([1,2,3,4,2,4,2],4));
        // 移除数组 arr 中的所有值与 item 相等的元素，直接在给定的 arr 数组上进行操作，并将结果返回
        function remove2(arr,item){
            for(let i=0;i<arr.length;i++){
                if(arr[i]==item){
                   arr.splice(i,1);
                }
            }
            return  arr;
        }
        console.log(remove2([1,2,3,4,2],2));

        function remove3(arr,item){
            while(arr.indexOf(item)!==-1){
                arr.splice(arr.indexOf(item),1)
            }
            return arr;
        }
        console.log(remove3([1,2,3,4,2],2));

        function remove4(arr,item){
            arr.map((m,index)=>{
                if(m===item){
                    arr.splice(index,1);
                }
            })
            return arr;
        }
        console.log(remove4([1,2,3,4,2],2));
    </script>
</body>
</html>